/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.japo.java.swing.events;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import org.japo.java.swing.igu.IGU;

/**
 *
 * @author José A. Pacheco
 */
public class GET extends KeyAdapter {
    // Referencia al IGU
    IGU igu;

    public GET(IGU igu) {
        this.igu = igu;
    }

    @Override
    public void keyPressed(KeyEvent ke) {
        // Obtiene el código de la tecla
        int codigoTecla = ke.getKeyCode();

        // Activa el semáforo de la tecla pulsada
        igu.teclaPulsada[codigoTecla] = true;

        // Gestiona la tecla
        if (codigoTecla == igu.PALA_INF_DER) {
            // Parar el temporizador de la otra tecla esté como esté
            igu.timerInfIzq.stop();

            // Activa el temporizador de la tecla pulsada
            if (!igu.timerInfDer.isRunning()) {    // Pala parada
                igu.timerInfDer.start();
            }
        } else if (codigoTecla == igu.PALA_INF_IZQ) {
            // Parar el temporizador de la otra tecla esté como esté
            igu.timerInfDer.stop();

            // Activa el temporizador de la tecla pulsada
            if (!igu.timerInfIzq.isRunning()) {    // Pala parada
                igu.timerInfIzq.start();
            }
        } else if (codigoTecla == igu.PALA_SUP_DER) {
            // Parar el temporizador de la otra tecla esté como esté
            igu.timerSupIzq.stop();

            // Activa el temporizador de la tecla pulsada
            if (!igu.timerSupDer.isRunning()) {    // Pala parada
                igu.timerSupDer.start();
            }
        } else if (codigoTecla == igu.PALA_SUP_IZQ) {
            // Parar el temporizador de la otra tecla esté como esté
            igu.timerSupDer.stop();

            // Activa el temporizador de la tecla pulsada
            if (!igu.timerSupIzq.isRunning()) {    // Pala parada
                igu.timerSupIzq.start();
            }
        }
    }

    @Override
    public void keyReleased(KeyEvent ke) {
        // Obtiene el código de la tecla
        int codigoTecla = ke.getKeyCode();

        // Desactiva el semáforo de la tecla pulsada
        igu.teclaPulsada[codigoTecla] = false;

        // Gestiona la tecla
        if (codigoTecla == igu.PALA_INF_DER) {
            // Para el temporizador de la tecla
            igu.timerInfDer.stop();

            // Si la otra tecla está activa activa su temporizador
            if (igu.teclaPulsada[igu.PALA_INF_IZQ]) {
                igu.timerInfIzq.start();
            }
        } else if (codigoTecla == igu.PALA_INF_IZQ) {
            // Para el temporizador de la tecla
            igu.timerInfIzq.stop();

            // Si la otra tecla está activa activa su temporizador
            if (igu.teclaPulsada[igu.PALA_INF_DER]) {
                igu.timerInfDer.start();
            }
        } else if (codigoTecla == igu.PALA_SUP_DER) {
            // Para el temporizador de la tecla
            igu.timerSupDer.stop();

            // Si la otra tecla está activa activa su temporizador
            if (igu.teclaPulsada[igu.PALA_SUP_IZQ]) {
                igu.timerSupIzq.start();
            }
        } else if (codigoTecla == igu.PALA_SUP_IZQ) {
            // Para el temporizador de la tecla
            igu.timerSupIzq.stop();

            // Si la otra tecla está activa activa su temporizador
            if (igu.teclaPulsada[igu.PALA_SUP_DER]) {
                igu.timerSupDer.start();
            }
        }
    }
}
